java 死锁bdm
接口
int thread1(); int thread2();
dao实现
<update id="thread1"> BEGIN update t_base_employee t set t.modify_time=sysdate where t.employee_code='108251'; update t_base_employee t set t.modify_time=sysdate where t.employee_code='M53291'; end; </update> <update id="thread2"> BEGIN update t_base_employee t set t.modify_time=sysdate where t.employee_code='M53291'; update t_base_employee t set t.modify_time=sysdate where t.employee_code='108251'; end; </update>
测试
@Test public void threadTest() throws InterruptedException { int threadNumber=3; final CountDownLatch countDownLatch = new CountDownLatch(threadNumber); for (int i = 0; i < threadNumber; i++) { final int ii=i; if (i % 2 == 0) { new Thread(new Runnable() { @Override public void run() { baseSysLoggerService.thread1(); System.out.println("第"+(ii+1)+"个线程执行完成"); countDownLatch.countDown(); } }).start(); } else { new Thread(new Runnable() { @Override public void run() { System.out.println("第"+(ii+1)+"个线程执行完成"); baseSysLoggerService.thread2(); countDownLatch.countDown(); } }).start(); } } countDownLatch.await(); System.out.println("主线程执行完成"); }